メインコンテンツまでスキップ

Prometheus サービス インストール ガイド

システムモニタリング機能を使用するためのOn-Premise環境用インストールガイドです。

概要

本文は kube-prometheus-stack Helm Chart を活用した Prometheus インストールガイドを提供しています。

※ OVA Virtual Appliance Baseline 2025.09 バージョンからはプロメテウスが基本仕様としてインストールされています。

プロメテウスがインストールされている場合、次のconfigmap設定でシステムモニタリング機能を有効にすることができます。
(直接インストールする方式とネームスペースが異なります。)

### portal-web-config
VUE_APP_USE_SYSTEM_MONITORING: true
### cloud-spsvr-config
CUSTOM_PROMETHEUS_URL: http://rancher-monitoring-prometheus.monitoring.svc.cluster.local:9090
  • kube-prometheus-stack に含まれているサービスの一覧
サービス機能必須かどうか
prometheusクラスター メトリック データの収集と保存⭕️
prometheus-config-reloaderPrometheus 設定の自動検出と反映⭕️
prometheus-operatorPrometheusと関連するリソース管理および自動化⭕️
prometheus-node-exporterノードシステムリソースデータ提供(CPU、メモリ、ディスク、ネットワーク)⭕️
kube-state-metricsKubernetes クラスターで動作するリソースの状態情報を提供⭕️
alertmanagerPrometheusで発生するアラートメール、Webhookで送信
grafanaPrometheusで収集したデータを視覚化してダッシュボード形式で提供

インストール方法

  1. 必要なDockerイメージファイルの準備
  • Docker Image Pull

    # prometheus
    docker pull quay.io/prometheus/prometheus:v3.2.1

    # prometheus-operator
    docker pull quay.io/prometheus-operator/prometheus-operator:v0.80.1

    # prometheus-node-exporter
    docker pull quay.io/prometheus/node-exporter:v1.9.0

    # prometheus-config-reloader
    docker pull rancher/mirrored-prometheus-operator-prometheus-config-reloader:v0.59.1

    # kube-state-metrics
    docker pull rancher/mirrored-kube-state-metrics-kube-state-metrics:v2.6.0
  • 閉鎖網環境 Harbor パスで Docker イメージ タグ変更

    # prometheus
    docker tag quay.io/prometheus/prometheus:v3.2.1 harbor.local:5050/prometheus/prometheus:v3.2.1

    # prometheus-operator
    docker tag quay.io/prometheus-operator/prometheus-operator:v0.80.1 harbor.local:5050/prometheus/prometheus-operator:v0.80.1

    # prometheus-node-exporter
    docker tag quay.io/prometheus/node-exporter:v1.9.0 harbor.local:5050/prometheus/prometheus-node-exporter:v1.9.0

    # prometheus-config-reloader
    docker tag rancher/mirrored-prometheus-operator-prometheus-config-reloader:v0.59.1 harbor.local:5050/prometheus/prometheus-config-reloader:v0.59.1

    # kube-state-metrics
    docker tag rancher/mirrored-kube-state-metrics-kube-state-metrics:v2.6.0 harbor.local:5050/prometheus/kube-state-metrics:v2.6.0
  • Docker イメージを .tar ファイルとして保存

    # prometheus
    docker save -o prometheus.tar harbor.local:5050/prometheus/prometheus:v3.2.1

    # prometheus-operator
    docker save -o prometheus-operator.tar harbor.local:5050/prometheus/prometheus-operator:v0.80.1

    # prometheus-node-exporter
    docker save -o node-exporter.tar harbor.local:5050/prometheus/prometheus-node-exporter:v1.9.0

    # prometheus-config-reloader
    docker save -o prometheus-config-reloader.tar harbor.local:5050/prometheus/prometheus-config-reloader:v0.59.1

    # kube-state-metrics
    docker save -o kube-state-metrics.tar harbor.local:5050/prometheus/kube-state-metrics:v2.6.0
  1. kube-prometheus-stack Helm チャートの準備
# helm 저장소 추가
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update

# prometheus-operator-crds 다운로드
helm pull prometheus-community/prometheus-operator-crds

# kube-prometheus-stack chart 다운로드
helm pull prometheus-community/kube-prometheus-stack
  1. kube-prometheus-stack チャート values.yaml ファイル設定値の修正
  • kube-prometheus-stack チャート values.yaml

    # values.yaml
    fullnameOverride: "rancher-monitoring"
    alertmanager:
    enabled: false #사용 안함
    grafana:
    enabled: false #사용 안함
    kubeApiServer:
    enabled: false #사용 안함
    kubeControllerManager:
    enabled: false #사용 안함
    coreDns:
    enabled: false #사용 안함
    kubeEtcd:
    enabled: false #사용 안함
    kubeScheduler:
    enabled: false #사용 안함
    kubeProxy:
    enabled: false #사용 안함
    prometheusOperator:
    image:
    registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
    repository: prometheus/prometheus-operator
    tag: "v0.80.1"
    prometheusConfigReloader:
    image:
    registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
    repository: prometheus/prometheus-config-reloader
    tag: "v0.59.1"
    prometheus:
    prometheusSpec:
    scrapeInterval: "60s"
    evaluationInterval: "60s"
    retention: 10d #데이터 보관 주기기
    image:
    registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
    repository: prometheus/prometheus
    tag: v3.2.1
    volumeClaimTemplate: #PVC 설정
    spec:
    storageClassName: longhorn
    accessModes: ["ReadWriteOnce"]
    resources:
    requests:
    storage: 10Gi
  • prometheus-node-exporter サブチャート values.yaml

    # charts\prometheus-node-exporter\values.yaml
    image:
    registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
    repository: prometheus/prometheus-node-exporter
    tag: "v1.9.0"
  • kube-state-metrics サブチャート values.yaml

    # charts\kube-state-metrics\values.yaml
    image:
    registry: harbor.local:5050 #로컬 Harbor 주소로 변경 필요
    repository: prometheus/kube-state-metrics
    tag: "v2.6.0"

※ 収集メトリックを制限する必要がある場合

PVCの容量制限により、収集メトリックを制限する必要がある場合、values.yamlで以下の値を追加で変更する必要があります。

kubelet:
serviceMonitor:
enabled: false #kubelet default job 제외 처리
prometheusOperator:
serviceMonitor:
selfMonitor: false #prometheus-operator default job 제외 처리
prometheus:
serviceMonitor:
selfMonitor: false #prometheus default job 제외 처리
prometheusSpec:
additionalScrapeConfigs:
- job_name: "node-exporter-custom"
kubernetes_sd_configs:
- role: endpoints
namespaces:
names: ["cattle-monitoring-system"]
relabel_configs:
- source_labels: [__meta_kubernetes_namespace]
regex: cattle-monitoring-system
action: keep
- source_labels:
[__meta_kubernetes_service_label_app_kubernetes_io_name]
regex: prometheus-node-exporter
action: keep
- source_labels: [__meta_kubernetes_endpoint_port_name]
regex: http-metrics
action: keep
- source_labels: [__meta_kubernetes_endpoint_address_target_kind]
regex: Pod
action: keep
- source_labels: [__meta_kubernetes_pod_node_name]
target_label: instance
action: replace
metric_relabel_configs:
- source_labels: [__name__]
regex: node_uname_info|node_cpu_seconds_total|node_load1|node_load5|node_load15|node_memory_MemTotal_bytes|node_memory_MemAvailable_bytes|node_memory_Active_bytes|node_memory_.*|node_filesystem_(size|avail|free|used)_bytes|node_network_(receive|transmit)_bytes_total
action: keep
  1. 修正した kube-prometheus-stack Helm Chart パッケージング
helm package kube-prometheus-stack # kube-prometheus-stack-69.8.2.tgz 형식의 패키지 파일 생성
  1. 生成した Docker Image ファイルおよび prometheus-operator-crds, kube-prometheus-stack Helm Chart 構築サーバーにコピー
  2. Harbor ウェブ UI でローカル Harbor にプロジェクトを作成
  • Project Name : prometheus
  • Access Level : Public
  1. 構築サーバー ローカル Harborに Docker Image load & push
# prometheus
docker load -i prometheus.tar
docker push harbor.local:5050/prometheus/prometheus:v3.2.1

# prometheus-operator
docker load -i prometheus-operator.tar
docker push harbor.local:5050/prometheus/prometheus-operator:v0.80.1

# prometheus-node-exporter
docker load -i node-exporter.tar
docker push harbor.local:5050/prometheus/prometheus-node-exporter:v1.9.0

# prometheus-config-reloader
docker load -i prometheus-config-reloader.tar
docker push harbor.local:5050/prometheus/prometheus-config-reloader:v0.59.1

# kube-state-metrics
docker load -i kube-state-metrics.tar
docker push harbor.local:5050/prometheus/kube-state-metrics:v2.6.0
  1. Prometheus CRDs 設定既存の Prometheus CRD を削除
# CRD 조회
kubectl get crd | grep monitoring.coreos.com

# 위 명령어 실행 결과로 나온 CRD 삭제
kubectl delete crd <CRD 명>

CRDを削除した後、コピーしたCRDs HelmチャートでCRDをインストール

# Namespace : cattle-monitoring-system
# ReleaseName : prometheus

helm install prometheus-operator-crds prometheus-operator-crds-20.0.0.tgz -n cattle-monitoring-system --create-namespace
  1. Prometheus のインストール
# Namespace : cattle-monitoring-system
# ReleaseName : prometheus

helm install prometheus kube-prometheus-stack-69.8.2.tgz -n cattle-monitoring-system --create-namespace

※ メトリックの収集を制限する必要がある場合、次のコマンドを実行することで基本メトリックの収集を防ぐことができます。

kubectl delete servicemonitor prometheus-prometheus-node-exporter -n cattle-monitoring-system
kubectl delete servicemonitor prometheus-kube-state-metrics -n cattle-monitoring-system

インストール 削除

Prometheusをインストールした後、削除が必要な場合は、次のコマンドを使用して削除できます。

helm uninstall prometheus -n cattle-monitoring-system

追加設定

管理センター configMap 設定

管理センターのシステムモニタリング機能を使用するために、管理センターのフロントエンド/バックエンドの configMap 値が正しく設定されている必要があります。

  • Security365 管理センター フロントエンド configMapVUE_APP_USE_SYSTEM_MONITORING: システムモニタリング機能の使用有無

    ### portal-web-config
    VUE_APP_USE_SYSTEM_MONITORING: true
  • Security365 管理センター バックエンド configMapCUSTOM_PROMETHEUS_URL: Prometheus サービス クラスター内部アドレス

    ### cloud-spsvr-config
    CUSTOM_PROMETHEUS_URL: http://rancher-monitoring-prometheus.cattle-monitoring-system.svc.cluster.local:9090